package com.ypinkj.app.api;

import com.ypinkj.app.utils.FtpUtil;
import com.ypinkj.app.utils.resultutils.Result;
import com.ypinkj.app.utils.resultutils.ResultUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * 公共API
 *
 * 肖守凯
 */
@Controller
@RequestMapping("/")
public class IndexController {






    // 允许上传的文件类型
    private static final List<String> RESUME_TYPES = new ArrayList<>();

    //允许上传的格式
    static {
//        RESUME_TYPES.add("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
//        RESUME_TYPES.add("application/pdf");
//        RESUME_TYPES.add("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
//        RESUME_TYPES.add("application/msword");
        RESUME_TYPES.add("image/gif");
        RESUME_TYPES.add("image/jpeg");
        RESUME_TYPES.add("image/png");

    }

    // 上传文件大小的上限值
    @Value("${project.resume.max-size}")
    private int resumeMaxSize;


    /**
     * 添加一个张图片到服务器上
     */
    @RequestMapping(value = "/setImg")
    @ResponseBody
    public Result setImg(MultipartFile file) {



        System.out.println("上传了图片");
        String imgUrl = "";
        try {
            if (file.isEmpty()) {
                return ResultUtil.error("请选择要上传的简历");
            }

            System.out.println("简历大小:" + file.getSize());

            // 检查上传的文件大小
            if (file.getSize() > resumeMaxSize) {

                return ResultUtil.error("不允许上传超过" + resumeMaxSize / 1024 + "KB的文件");


            }

            // 检查上传的文件类型：image/jpeg, image/png


            String fileType = file.getContentType().toLowerCase();//获取文件类型转换为小写****
            if (!RESUME_TYPES.contains(fileType)) {

                return ResultUtil.error("您上传的头像类型超出了限制，允许上传的文件类型有：" + RESUME_TYPES);

            }
            imgUrl = FtpUtil.uploadFile(file);


        } catch (IOException e) {
            e.printStackTrace();
        }

        /**
         * 拼接字符串
         */
        imgUrl = FtpUtil.IMG_LOGO + imgUrl;


        return ResultUtil.success(imgUrl);
    }
}
